package com.cy.study.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cy.study.common.BasePageReq;
import com.cy.study.entity.FileEntity;
import com.cy.study.req.*;
import com.cy.study.res.*;

public interface FileService extends IService<FileEntity> {

    /**
     * 用户新增文件
     * @param req
     * @return
     */
    Integer userCenterAddFile(UserCenterAddFileReq req);

    /**
     * 用户端文件列表
     * @param req
     * @return
     */
    Page<UserCenterFilePageRes> userCenterFilePage(BasePageReq req);

    /**
     * 用户端修改文件
     * @param req
     */
    void userCenterUpdateFile(UserCenterUpdateFileReq req);

    /**
     * 用户端删除文件
     * @param req
     */
    void userCenterDeleteFile(UserCenterDeleteFileReq req);

    /**
     * 管理端文件列表
     * @param req
     * @return
     */
    Page<FilePageRes> filePage(FilePageReq req);


    /**
     * 管理端文件详情
     * @param fileId
     * @return
     */
    FileDetailRes fileDetail(Integer fileId);

    /**
     * 管理端删除文件
     * @param req
     */
    void deleteFile(DeleteFileReq req);

    /**
     * 用户端资源列表
     * @param req
     * @return
     */
    Page<UserPageFileRes> userPageFile(UserPageFileReq req);


    /**
     * 用户端资源详情
     * @param fileId
     * @return
     */
    UserFileDetailRes userFileDetail(Integer fileId);

    /**
     * 文件下载量+1
     * @param path
     */
    void downloadCount(String path);

}
